﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace serva
{
	/// <summary>
	/// Lógica de interacción para Panel_Unidades.xaml
	/// </summary>
	public partial class Panel_Unidades : UserControl
	{
        public List<Unidad> ListUnidades = new List<Unidad>();
        private Unidad actual = new Unidad();

		public Panel_Unidades()
		{
			this.InitializeComponent();       
           
		}

        private void btnAdd_Click(object sender, RoutedEventArgs e)
        {
            operar();
        }

        public void limpiar()
        {
            txtNombre.Text = "";
            txtNombre.Focus();
        }

        public void Cargar()
        {
            grid_Unidades.ItemsSource = ListUnidades;
            grid_Unidades.ColumnWidth = 200;
            grid_Unidades2.ColumnWidth = 200;
            cBoxUnidad1.ItemsSource = ListUnidades;
            cBoxUnidad2.ItemsSource = ListUnidades;
            cBoxUnidad1.DisplayMemberPath = "Nombre";
            cBoxUnidad2.DisplayMemberPath = "Nombre";           
        }

        private void operar()
        {
            try
            {
                if (txtNombre.Text == "")
                {
                    MessageBox.Show("Es necesario que ingrese un nombre.", "ADVERTENCIA", MessageBoxButton.OK, MessageBoxImage.Warning);
                    txtNombre.Focus();
                }
                else
                {
                    ListUnidades.Add(new Unidad(txtNombre.Text));
                    grid_Unidades.Items.Refresh();
                    limpiar();
                    cBoxUnidad1.Items.Refresh();
                    cBoxUnidad2.Items.Refresh();
                }
            }
            catch (Exception)
            {
                return;
            }
        }

        private void txtNombre_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.Key == Key.Enter)
            {
                cBoxUnidad1.Items.Refresh();
                cBoxUnidad2.Items.Refresh();
            }
        }

        private void btnAdd2_Click(object sender, RoutedEventArgs e)
        {
            //Unidad tmp1 = ListUnidades.Find(delegate(Unidad u) { return u.Nombre.Equals((Unidad)cBoxUnidad1.SelectedItem); });
            //Unidad tmp2 = ListUnidades.Find(delegate(Unidad u) { return u.Nombre.Equals((Unidad)cBoxUnidad2.SelectedItem); });
            double d = double.Parse(txtCantidad.Text);
            ((Unidad)cBoxUnidad1.SelectedItem).UnidadesEquivalentes[(Unidad)cBoxUnidad2.SelectedItem] = d;
            llegarGrid2();
            grid_Unidades2.Items.Refresh();
        }

        private void llegarGrid2()
        {
            
        }

        private void cBoxUnidad1_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            actual = (Unidad)cBoxUnidad1.SelectedItem;
            grid_Unidades2.ItemsSource = actual.UnidadesEquivalentes;
            grid_Unidades2.Items.Refresh();
            
        }

        public void cargarAlAbrir(List<Unidad> unidades)
        {
            ListUnidades = unidades;
            grid_Unidades.ItemsSource = unidades;
            cBoxUnidad1.ItemsSource = ListUnidades;
            cBoxUnidad2.ItemsSource = ListUnidades;
            cBoxUnidad1.DisplayMemberPath = "Nombre";
            cBoxUnidad2.DisplayMemberPath = "Nombre";
        }
	}
}